home *** CD-ROM | disk | FTP | other *** search
- ;/* ListPattern.c - AmigaMail MatchFirst()/MatchNext() example.
- lc -cfis -v -d0 -b0 -j73 ListPattern.c
- blink from ListPattern.o to ListPattern lib lib:amiga.lib ;if you don't have pragmas
- quit
- */
- /* (c) Copyright 1991 Commodore-Amiga, Inc. All rights reserved.
- The information contained herein is subject to change without notice,
- and is provided "as is" without warranty of any kind, either expressed
- or implied. The entire risk as to the use of this information is
- assumed by the user.
- */
-
- #include <exec/memory.h>
- #include <dos/dosextens.h>
- #include <dos/rdargs.h>
- #include <clib/exec_protos.h>
- #include <clib/dos_protos.h>
-
- /* undef PRAGMAS if you don't have them */
- #define PRAGMAS
- #undef PRAGMAS
- #ifdef PRAGMAS
- #include <pragmas/exec_pragmas.h>
- #include <pragmas/dos_pragmas.h>
- #else
-
- struct ExecBase *SysBase;
- struct DosLibrary *DOSBase;
- #endif
-
- VOID main(VOID);
- UWORD StrLen(UBYTE *);
-
- VOID
- main(VOID)
- {
-
- #ifdef PRAGMAS
- struct DosLibrary *DOSBase;
- #endif
-
- struct RDArgs *readargs;
- LONG rargs[1];
- LONG vargs[4];
- UBYTE *pattern;
- struct AnchorPath *anchorpath;
- LONG error;
-
- #ifndef PRAGMAS
- /* set up SysBase */
- SysBase = (*((struct Library **) 4));
- #endif
-
- /* Fail silently if < 37 */
- if (DOSBase = (struct DosLibrary *) OpenLibrary("dos.library", 37))
- {
- /* See the DOS Autodocs for more information about ReadArgs() */
- if (readargs = ReadArgs("PATTERN/A", rargs, NULL))
- {
- pattern = (UBYTE *) rargs[0];
- if (anchorpath = AllocMem(sizeof(struct AnchorPath) + 512, MEMF_CLEAR))
- {
- anchorpath->ap_Strlen = 512;
- anchorpath->ap_BreakBits = SIGBREAKF_CTRL_C;
-
- if ((error = MatchFirst(pattern, anchorpath)) == 0)
- {
- do
- {
- vargs[0] = (LONG) anchorpath->ap_Buf;
- VFPrintf(Output(), "%s\n", vargs);
- } while ((error = MatchNext(anchorpath)) == 0);
- }
-
- MatchEnd(anchorpath);
-
- if (error != ERROR_NO_MORE_ENTRIES)
- PrintFault(error, NULL);
-
- FreeMem(anchorpath, sizeof(struct AnchorPath) + 512);
- }
- FreeArgs(readargs);
- }
- else
- PrintFault(IoErr(), NULL);
- CloseLibrary((struct Library *) DOSBase);
- }
- }
-